package fan.string.Day05.exception;

import java.io.UnsupportedEncodingException;

public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");

        try {
//            String str = null;
//            String str = "";
//            String str = "abc";
            String str = "123";
            System.out.println(str.length());
            System.out.println(str.charAt(0));
            System.out.println(Integer.parseInt(str));
            str.getBytes("UFT-8");
            /*
                 try语句块中某句话如果出现了异常，则try语句块中这句话后面
                 的所有代码都不会被执行了！
             */
            System.out.println("!!!!!!!!!!!!!!!");
        //当多个异常有相同处理方式时，可以使用"|"指定不活的不同异常类
        }catch (NullPointerException | StringIndexOutOfBoundsException e){
            System.out.println("出现了空指针或下标越界，并且解决完毕");
            //catch可以写多个，当针对不同的异常有不同的处理方式时可以分别捕获
//        }catch (StringIndexOutOfBoundsException e){
//            System.out.println("下标越界");
        }catch (NumberFormatException e){
            System.out.println("数字格式异常");
        } catch (UnsupportedEncodingException e) {
            System.out.println("不支持的字符集");
            e.printStackTrace();
            //尽量在最后一个catch处捕获Exception，避免未知的异常导致程序
        }catch (Exception e){
            System.out.println("出错了");
        }


        System.out.println("程序结束了");
    }
}
